package cn.outsourcing.supermarket.common.constants;

import com.google.common.collect.Sets;

import java.util.Set;

public interface Channel {

    int UNKNOWN = 0;

    /**
     * 支付宝快捷支付/退款
     */
    int ALIPAY_QUICK = 1;

    /**
     * 微信公众号支付/退款
     * 待全部接入订单服务后,微信支付的标识是2
     * (目前微信原生JS是没有使用的)
     */
    int WECHAT_JSAPI = 2;

    /**
     * 银联在线支付/退款(废弃)
     */
    @Deprecated
    int UNION_ONLINE = 3;

    /**
     * 支付宝即时到账支付/退款
     */
    int ALIPAY = 4;

    /**
     * 银联手机支付/退款(废弃)
     */
    @Deprecated
    int UNION_PHONE = 5;

    /**
     * 支付宝手机网页即时到账支付/退款
     */
    int ALIPAY_WAP = 6;

    /**
     * 支付宝网银支付支付/退款
     */
    @Deprecated
    int ALIPAY_BANK_PAY = 7;

    /**
     * 银联B2b支付/退款
     */
    @Deprecated
    int UNION_B2B = 8;

    /**
     * 线下汇款支付/线下财务退款
     */
    int OFFLINE_REMIT = 9;

    /**
     * 余额支付/退款
     */
    int BALANCE = 10;

    /**
     * 优惠券支付(因boss中多处支付方式查询要筛选含优惠券的支付,现为查询方面,防止其他渠道占用,故单独作为一种支付方式)
     * <p>
     * 订单中并没有真正的订单全部用优惠券付款,只作为前台查询,传递给后台参数
     */
    int COUPON = 11;

    /**
     * 微信APP支付
     */
    int WECHAT_APP = 12;

    /**
     * 银联快捷支付(token版)(废弃)
     */
    @Deprecated
    int UNION_TOKEN = 13;

    /**
     * 蓝金灵贷款支付 (已经被清理代码了，为了兼容 )
     */
    @Deprecated
    int LANJINLING_P2P = 14;

    /**
     * 银联网关支付
     */
    @Deprecated
    int UNION_GATEWAY = 15;

    /**
     * 易宝网银支付
     *
     * @see Channel#YIBAO_NEW_FAST_PAY
     * @see Channel#YIBAO_NEW_BANK_PAY
     */
    @Deprecated
    int YIBAO = 16;

    /**
     * 授信宝支付
     */
    int CREDIT_LIMIT = 17;

    /**
     * 通联支付
     */
    int ALLIN = 18;

    /**
     * 供应链金融贷款支付
     */
    int SCF_LOAN_P2P = 19;


    /**
     * 支付宝当面付
     */
    int AILPAY_F2F = 20;
    /**
     * 预存款支付渠道
     */
    int PER_MONEY = 21;


    int FBANK = 22;

    /**
     * 易宝亿企通快捷支付
     */
    int YIBAO_NEW_FAST_PAY = 23;

    /**
     * 易宝亿企通网银支付
     */
    int YIBAO_NEW_BANK_PAY = 24;

    /**
     * 店付宝支付
     */
    int FRONT_PAY = 25;
    /**
     * 虚拟支付
     */
    int VIRTUAL_PAY = 26;






    /**
     * 通联小程序支付
     */
    int ALLIN_APPLETS_0 = 28;


    /**
     * 通联小程序支付
     */
    int ALLIN_APPLETS_1 = 29;

    /**
     * B平台线下汇款
     */
    int BMALL_OFFLINE = 30;

    /**
     * 现场退款
     */
    int OFFLINE_SCENE = 98;

    /**
     * 通联支付-支付宝扫码
     * */
    int ALLIN_ALIPAY = 27;

    Set<Integer> P2P_PAY = Sets.newHashSet(SCF_LOAN_P2P, LANJINLING_P2P);

    Set<Integer> GATEWAY_CHANNELS = Sets.newHashSet(Channel.ALLIN, Channel.WECHAT_APP, Channel.YIBAO, Channel.ALIPAY,
            Channel.ALIPAY_WAP, Channel.ALIPAY_QUICK, Channel.FBANK, Channel.YIBAO_NEW_FAST_PAY, Channel.YIBAO_NEW_BANK_PAY,Channel.ALLIN_APPLETS_0,Channel.ALLIN_APPLETS_1,Channel.ALLIN_ALIPAY);


    Set<Integer> OFFLINE_CHANNELS = Sets.newHashSet(Channel.OFFLINE_REMIT,Channel.BMALL_OFFLINE);

}
